using System;
using System.Collections;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace SHDocVw
{
	[DefaultMember("Item"), Guid("85CB6900-4D95-11CF-960C-0080C7F4EE85"), TypeLibType(4160)]
	[ComImport]
	public interface IShellWindows : IEnumerable
	{
		[DispId(1610743808)]
		int Count
		{
			[DispId(1610743808)]
			[MethodImpl(MethodImplOptions.InternalCall)]
			get;
		}
		[DispId(0)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		[return: MarshalAs(UnmanagedType.IDispatch)]
		object Item([MarshalAs(UnmanagedType.Struct)] [In] object index = null);
		[DispId(-4)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		[return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalType = "System.Runtime.InteropServices.CustomMarshalers.EnumeratorToEnumVariantMarshaler")]
		IEnumerator GetEnumerator();
		[DispId(1610743811), TypeLibFunc(64)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		void Register([MarshalAs(UnmanagedType.IDispatch)] [In] object pid, [In] int HWND, [In] int swClass, out int plCookie);
		[DispId(1610743812), TypeLibFunc(64)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		void RegisterPending([In] int lThreadId, [MarshalAs(UnmanagedType.Struct)] [In] ref object pvarloc, [MarshalAs(UnmanagedType.Struct)] [In] ref object pvarlocRoot, [In] int swClass, out int plCookie);
		[DispId(1610743813), TypeLibFunc(64)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		void Revoke([In] int lCookie);
		[DispId(1610743814), TypeLibFunc(64)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		void OnNavigate([In] int lCookie, [MarshalAs(UnmanagedType.Struct)] [In] ref object pvarloc);
		[DispId(1610743815), TypeLibFunc(64)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		void OnActivated([In] int lCookie, [In] bool fActive);
		[DispId(1610743816), TypeLibFunc(64)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		[return: MarshalAs(UnmanagedType.IDispatch)]
		object FindWindowSW([MarshalAs(UnmanagedType.Struct)] [In] ref object pvarloc, [MarshalAs(UnmanagedType.Struct)] [In] ref object pvarlocRoot, [In] int swClass, out int pHWND, [In] int swfwOptions);
		[DispId(1610743817), TypeLibFunc(64)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		void OnCreated([In] int lCookie, [MarshalAs(UnmanagedType.IUnknown)] [In] object punk);
		[DispId(1610743818), TypeLibFunc(64)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		void ProcessAttachDetach([In] bool fAttach);
	}
}
